<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<!-- 
###############################################################################
#
# File:         INDEX.html
# RCS:          $Header: $
# Description:  WINTERP examples/xtango/* description
# Author:       Niels P. Mayer
# Created:      1994
# Modified:     Mon Nov 24 17:36:02 1997 (Niels Mayer) npm@indeed.netcom.com
# Language:     HTML
# Package:      N/A
# Status:       Experimental (Do Not Distribute)
#
# Copyright (C) 1994-1996, Enterprise Integration Technologies Corp. and Niels Mayer.
# WINTERP 1.15-1.99, Copyright (c) 1993, Niels P. Mayer.
# WINTERP 1.0-1.14, Copyright (c) 1989-1992 Hewlett-Packard Co. and Niels Mayer.
# 
# Permission to use, copy, modify, distribute, and sell this software and its
# documentation for any purpose is hereby granted without fee, provided that
# the above copyright notice appear in all copies and that both that
# copyright notice and this permission notice appear in supporting
# documentation, and that the name of Enterprise Integration Technologies,
# Hewlett-Packard Company, or Niels Mayer not be used in advertising or
# publicity pertaining to distribution of the software without specific,
# written prior permission. Enterprise Integration Technologies, Hewlett-Packard
# Company, and Niels Mayer makes no representations about the suitability of
# this software for any purpose.  It is provided "as is" without express or
# implied warranty.
# 
# ENTERPRISE INTEGRATION TECHNOLOGIES, HEWLETT-PACKARD COMPANY AND NIELS MAYER
# DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL ENTERPRISE
# INTEGRATION TECHNOLOGIES, HEWLETT-PACKARD COMPANY OR NIELS MAYER BE LIABLE
# FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
# RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
# CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
###############################################################################
-->

<HTML>
<HEAD>
<TITLE>WINTERP 2.0 Xtango Graphics/Animation examples</TITLE>
</HEAD>
<BODY>
<H1>WINTERP 2.0 Xtango Graphics/Animation examples</H1>
<UL>
<LI><A HREF="../../winterp.html">Back to WINTERP home page</A>
<LI><A HREF="../INDEX.html">WINTERP 2.0 example programs</A>
</UL>
<DL>
<DT><A HREF="../../scrnsnaps/xtango/barchart.gif">
<IMG SRC="../../scrnsnaps/camera.xbm" ALIGN="bottom" ALT="(screen snap)"></A>
<A HREF="barchart.lsp">barchart.lsp</A>
<DD> A 256 elt barchart which meters the number of elements/hashbucket within WINTERP's *saved_objs* hashtable. The barchart element in this app is a TANGOIMAGEOBJ. See barchart.lsp for a similar display using gadgets. 
<DT><A HREF="cls-image.lsp">cls-image.lsp</A>
<DD> Installs special methods on all the Xtango image classes. These methods allow the interactive manipulation (move, resize, etc) of images drawn within an instance of XTANGO-WIDGET-CLASS. (see also cls-widget.lsp). 
<DT><A HREF="cls-widget.lsp">cls-widget.lsp</A>
<DD> XTANGO-WIDGET-CLASS, XTANGO-BUTTON-WIDGET-CLASS. XTANGO-WIDGET-CLASS requires special methods installed on all the xtango image classes -- see ./cls-image.lsp. 
<DT><A HREF="../../scrnsnaps/xtango/ctrlpnl.gif">
<IMG SRC="../../scrnsnaps/camera.xbm" ALIGN="bottom" ALT="(screen snap)"></A>
<A HREF="ctrlpnl.lsp">ctrlpnl.lsp</A>
<DD> Pile of GUIs to let me easily play with and test WINTERP's Xtango functionality. 
<DT><A HREF="fluid2.gif">fluid2.gif</A>
<DD> An example GIF (by Dave Scruton) used as a background for hanoi.lsp and also used as a test gif by other programs... 
<DT><A HREF="../../scrnsnaps/xtango/hanoi.gif">
<IMG SRC="../../scrnsnaps/camera.xbm" ALIGN="bottom" ALT="(screen snap)"></A>
<A HREF="hanoi.lsp">hanoi.lsp</A>
<DD> Animated "towers of hanoi" algorithm. 
<DT><A HREF="icls-plrar.lsp">icls-plrar.lsp</A>
<DD> Define POLAR-ARROW-IMAGE-CLASS -- a subclass of TANGO:POLYGON_IMAGE_CLASS 
<DT><A HREF="icls-plrli.lsp">icls-plrli.lsp</A>
<DD> Define POLAR-LINE-IMAGE-CLASS -- a subclass of TANGO:LINE_IMAGE_CLASS. 
<DT><A HREF="im_methpop.lsp">im_methpop.lsp</A>
<DD> popup-menu-of-methods-of-object -- pops up a menu of the methods available on the class of the given instance. This is a pretty random way of inspecting the methods of an image given that the popup menu entries don't actually do anything. 
<DT><A HREF="../../scrnsnaps/xtango/imag-build.gif">
<IMG SRC="../../scrnsnaps/camera.xbm" ALIGN="bottom" ALT="(screen snap)"></A>
<A HREF="imag-build.lsp">imag-build.lsp</A>
<DD> Interactive "image builder". Allows you to create/edit/save/load images consisting of tango-image-objects. The actual drawing UI leaves much to be desired, and the use of flashing to show the selected set of images is clearly the wrong metaphor. But remember that I wrote this mostly to test out WINTERP's xtango interface -- though with some work this could become a useful drawing tool. 
<BR>
On the drawing area, remember that left-mouse selects, left-drag moves, middle-drag resizes, and right-click pops up a menu of methods on the selected image (doesn't actually do anything, yet). Shift-left-mouse does a multiple-selection operation, adding or removing the selected image-object to the multiple selection list. Once multi-selection has occurred, "Tango--&gt;Group Selected Images" will group the images into a single composite image; composites can be acted on as a group by other tango operators, e.g. movement. "Tango--&gt;Window Snapshot" requires you have xwdtopnm ppmtogif executables installed and on the search path (from PBM-PLUS), and you cannot currently save the GIF images resulting from a screen snapshot... Please feel free to fix/improve/debug this application and submit code back to winterp@netcom.com 
<DT><A HREF="../../scrnsnaps/xtango/imag-rndom.gif">
<IMG SRC="../../scrnsnaps/camera.xbm" ALIGN="bottom" ALT="(screen snap)"></A>
<A HREF="imag-rndom.lsp">imag-rndom.lsp</A>
<DD> Load this file to bring up a test UI for randomly placing the requested TANGOIMAGE within the Tango drawing area widget. On the drawing area, remember that left-mouse selects, left-drag moves, middle-drag resizes, and right-click pops up a menu of methods on the selected image (doesn't actually do anything, yet). 
<DT><A HREF="../../scrnsnaps/xtango/movi-cube.gif">
<IMG SRC="../../scrnsnaps/camera.xbm" ALIGN="bottom" ALT="(screen snap)"></A>
<A HREF="movi-cube.lsp">movi-cube.lsp</A>
<DD> XTANGO TANGO:BITMAP_IMAGE_CLASS displaying movie of a cube rotating. bitmap-movie is in bitmaps/movi-cube.lsp 
<DT><A HREF="../../scrnsnaps/xtango/movi-earth.gif">
<IMG SRC="../../scrnsnaps/camera.xbm" ALIGN="bottom" ALT="(screen snap)"></A>
<A HREF="movi-earth.lsp">movi-earth.lsp</A>
<DD> XTANGO TANGO:BITMAP_IMAGE_CLASS displaying movie of earth rotating. bitmap-movie is in bitmaps/earth-movie.lsp 
<DT><A HREF="../../scrnsnaps/xtango/movi-eyeb.gif">
<IMG SRC="../../scrnsnaps/camera.xbm" ALIGN="bottom" ALT="(screen snap)"></A>
<A HREF="movi-eyeb.lsp">movi-eyeb.lsp</A>
<DD> XTANGO TANGO:BITMAP_IMAGE_CLASS displaying movie of the back of a walking eye-man... bitmap-movie is in bitmaps/movi-eyeb.lsp 
<DT><A HREF="../../scrnsnaps/xtango/movi-eyebl.gif">
<IMG SRC="../../scrnsnaps/camera.xbm" ALIGN="bottom" ALT="(screen snap)"></A>
<A HREF="movi-eyebl.lsp">movi-eyebl.lsp</A>
<DD> XTANGO TANGO:BITMAP_IMAGE_CLASS displaying movie of eye blinking. bitmap-movie is in bitmaps/movi-eyebl.lsp 
<DT><A HREF="../../scrnsnaps/xtango/movi-eyef.gif">
<IMG SRC="../../scrnsnaps/camera.xbm" ALIGN="bottom" ALT="(screen snap)"></A>
<A HREF="movi-eyef.lsp">movi-eyef.lsp</A>
<DD> XTANGO TANGO:BITMAP_IMAGE_CLASS displaying movie of the front of a walking eye-man... bitmap-movie is in bitmaps/movi-eyef.lsp 
<DT><A HREF="../../scrnsnaps/xtango/movi-eyej.gif">
<IMG SRC="../../scrnsnaps/camera.xbm" ALIGN="bottom" ALT="(screen snap)"></A>
<A HREF="movi-eyej.lsp">movi-eyej.lsp</A>
<DD> XTANGO TANGO:BITMAP_IMAGE_CLASS displaying movie of eye-man jumping. bitmap-movie is in bitmaps/movi-eyej.lsp 
<DT><A HREF="../../scrnsnaps/xtango/movi-eyel.gif">
<IMG SRC="../../scrnsnaps/camera.xbm" ALIGN="bottom" ALT="(screen snap)"></A>
<A HREF="movi-eyel.lsp">movi-eyel.lsp</A>
<DD> XTANGO TANGO:BITMAP_IMAGE_CLASS displaying movie of the left of a walking eye-man... bitmap-movie is in bitmaps/movi-eyel.lsp 
<DT><A HREF="../../scrnsnaps/xtango/movi-eyer.gif">
<IMG SRC="../../scrnsnaps/camera.xbm" ALIGN="bottom" ALT="(screen snap)"></A>
<A HREF="movi-eyer.lsp">movi-eyer.lsp</A>
<DD> XTANGO TANGO:BITMAP_IMAGE_CLASS displaying movie of the right of a walking eye-man... bitmap-movie is in bitmaps/movi-eyer.lsp 
<DT><A HREF="../../scrnsnaps/xtango/movi-face.gif">
<IMG SRC="../../scrnsnaps/camera.xbm" ALIGN="bottom" ALT="(screen snap)"></A>
<A HREF="movi-face.lsp">movi-face.lsp</A>
<DD> XTANGO TANGO:BITMAP_IMAGE_CLASS displaying movie of scary faces bitmap-movie is in bitmaps/movi-face.lsp 
<DT><A HREF="../../scrnsnaps/xtango/movi-run.gif">
<IMG SRC="../../scrnsnaps/camera.xbm" ALIGN="bottom" ALT="(screen snap)"></A>
<A HREF="movi-run.lsp">movi-run.lsp</A>
<DD> XTANGO TANGO:BITMAP_IMAGE_CLASS displaying movie of a little man running. bitmap-movie is in bitmaps/movi-run.lsp 
<DT><A HREF="../../scrnsnaps/xtango/test-bbox.gif">
<IMG SRC="../../scrnsnaps/camera.xbm" ALIGN="bottom" ALT="(screen snap)"></A>
<A HREF="test-bbox.lsp">test-bbox.lsp</A>
<DD> Test of tango bounding boxes -- bounding boxes visible due to lack of expose-callback/:refresh, and displaying images individually, with :tap_show, and using non-white background 
<DT><A HREF="test-class.lsp">test-class.lsp</A>
<DD> Random attempts at playing around with OOP on tango-images. The expressions in this file are meant to be evaluated interactively; do not load this file. 
<DT><A HREF="../../scrnsnaps/xtango/test-compo.gif">
<IMG SRC="../../scrnsnaps/camera.xbm" ALIGN="bottom" ALT="(screen snap)"></A>
<A HREF="test-compo.lsp">test-compo.lsp</A>
<DD> Tests on TANGO:COMPOSITE_IMAGE_CLASS. The statements in this file should be evaluated interactively; the results of loading this file are somewhat uninteresting. 
<DT><A HREF="../../scrnsnaps/xtango/test-dial.gif">
<IMG SRC="../../scrnsnaps/camera.xbm" ALIGN="bottom" ALT="(screen snap)"></A>
<A HREF="test-dial.lsp">test-dial.lsp</A>
<DD> demo/test of DIAL-WIDGET-CLASS defined in wcls-dial.lsp 
<DT><A HREF="../../scrnsnaps/xtango/test-gauge.gif">
<IMG SRC="../../scrnsnaps/camera.xbm" ALIGN="bottom" ALT="(screen snap)"></A>
<A HREF="test-gauge.lsp">test-gauge.lsp</A>
<DD> Test/demo of GAUGE-WIDGET-CLASS, defined in wcls-gauge.lsp. 
<DT><A HREF="test-gif.lsp">test-gif.lsp</A>
<DD> Random tests involving TANGO:GIF_IMAGE_CLASS. This file is meant to be evaluated interactively. Also, many of the paths to GIFs below won't be valid on your system. 
<DT><A HREF="../../scrnsnaps/xtango/test-knob.gif">
<IMG SRC="../../scrnsnaps/camera.xbm" ALIGN="bottom" ALT="(screen snap)"></A>
<A HREF="test-knob.lsp">test-knob.lsp</A>
<DD> Demo/test of KNOB-WIDGET-CLASS, defined in wcls-knob.lsp 
<DT><A HREF="../../scrnsnaps/xtango/test-tango.gif">
<IMG SRC="../../scrnsnaps/camera.xbm" ALIGN="bottom" ALT="(screen snap)"></A>
<A HREF="test-tango.lsp">test-tango.lsp</A>
<DD> Various interactive tests/demos of WINTERP's xtango functionality. this file can either be loaded, or you may evaluate individual expressions in the file interactively. 
<DT><A HREF="../../scrnsnaps/xtango/test-text.gif">
<IMG SRC="../../scrnsnaps/camera.xbm" ALIGN="bottom" ALT="(screen snap)"></A>
<A HREF="test-text.lsp">test-text.lsp</A>
<DD> Test for TANGO:TEXT_IMAGE_CLASS -- show bounding box around text image. 
<DT><A HREF="test-trans.lsp">test-trans.lsp</A>
<DD> Test/demo of Xtango transitions on various image classes. It is probably best to interactively evaluate statements in this file, but it can also be somewhat entertaining if you just load the file. 
<DT><A HREF="test.lsp">test.lsp</A>
<DD> Random bits of code I wrote in testing WINTERP's Xtango widget. This file isn't meant to be loaded, rather, each lisp form is to be interactively evaluated using the gnuemacs interface or w_ctrlpnl.lsp... 
<DT><A HREF="util.lsp">util.lsp</A>
<DD> xtango utilities 
<DT><A HREF="../../scrnsnaps/xtango/wcls-bgcol.gif">
<IMG SRC="../../scrnsnaps/camera.xbm" ALIGN="bottom" ALT="(screen snap)"></A>
<A HREF="wcls-bgcol.lsp">wcls-bgcol.lsp</A>
<DD> XTANGO-BG-COLOR-SELECTION-WIDGET-CLASS -- dialog box for selecting background color of a tango image. 
<DT><A HREF="../../scrnsnaps/xtango/wcls-delay.gif">
<IMG SRC="../../scrnsnaps/camera.xbm" ALIGN="bottom" ALT="(screen snap)"></A>
<A HREF="wcls-delay.lsp">wcls-delay.lsp</A>
<DD> XTANGO-DELAY-SELECTION-WIDGET-CLASS -- dialog box for entering animation delay factor for xtango. 
<DT><A HREF="wcls-dial.lsp">wcls-dial.lsp</A>
<DD> DIAL-WIDGET-CLASS -- use xtango to define the graphics of a new motif widget class without having to use low-level xt widget subclassing uglyness. See also test-dial.lsp. 
<DT><A HREF="../../scrnsnaps/xtango/wcls-fgcol.gif">
<IMG SRC="../../scrnsnaps/camera.xbm" ALIGN="bottom" ALT="(screen snap)"></A>
<A HREF="wcls-fgcol.lsp">wcls-fgcol.lsp</A>
<DD> XTANGO-FG-COLOR-SELECTION-WIDGET-CLASS -- dialog box for selecting foreground color of a tango image object. 
<DT><A HREF="wcls-gauge.lsp">wcls-gauge.lsp</A>
<DD> GAUGE-WIDGET-CLASS -- use xtango to define the graphics of a new motif widget class without having to use low-level xt widget subclassing uglyness. 
<DT><A HREF="../../scrnsnaps/xtango/wcls-imopt.gif">
<IMG SRC="../../scrnsnaps/camera.xbm" ALIGN="bottom" ALT="(screen snap)"></A>
<A HREF="wcls-imopt.lsp">wcls-imopt.lsp</A>
<DD> XTANGO-IMAGE-OPTIONS-SELECTION-WIDGET-CLASS -- a dialog box for inputting image parameters for image creation, e.g. line width, fill values, arrow directions, etc. 
<DT><A HREF="wcls-knob.lsp">wcls-knob.lsp</A>
<DD> KNOB-WIDGET-CLASS -- use xtango to define the graphics of a new motif widget class without having to use low-level xt widget subclassing uglyness. See also test-knob.lsp 
<DT><A HREF="xbm-to-arr.lsp">xbm-to-arr.lsp</A>
<DD> (bitmap-file-to-array &lt;fname&gt;) converts *.xbm bitmap file to a xlisp 2-D array, for use by TANGO:BITMAP_IMAGE_CLASS 
</DL>
      <hr>
      <address><a href="mailto:npm@netwiz.net">Niels P. Mayer</a></address>
<!-- Created: Mon Nov 24 17:12:59 PST 1997 -->
<!-- hhmts start -->
Last modified: Fri Feb  5 12:49:24 PST 1999
<!-- hhmts end -->
  </body>
</html>
